【巡检问题分析与最佳实践】RDS PostgreSQL CPU高问题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 当RDS PostgreSQL实例的CPU使用率持续较高时,很容易导致数据库访问卡慢的情况,例如一些很简单的查询请求的响应时间也会很久甚至超时失败。

往期分享

RDS MySQL 小版本升级最佳实践

RDS MySQL 实例空间问题

RDS MySQL 内存使用问题

RDS MySQL 活跃线程数高问题

RDS MySQL 慢SQL问题

RDS MySQL 实例IO高问题

概述

CPU使用率过高问题是RDS PG用户遇到的性能问题中较常见的一类。当RDS SQL Server实例的CPU使用率持续较高时,很容易导致数据库访问卡慢的情况,例如一些很简单的查询请求的响应时间也会很久甚至超时失败。

资源监控

在RDS控制台的“监控与报警”页中的“标准监控”->“资源监控”下,可以查看指定时间段内实例的CPU使用率信息。

1.png

对于RDS PG来说,CPU使用率持续大于80%以上,通常表明系统处于高负载的情况,并且很可能存在较严重的性能问题。

CPU基本概念

  • CPU使用率,CPU使用率指的是CPU执行工作时间的比例,包含了所有符合条件的活动的时钟周期,比如停滞等待IO而导致较高的使用率,CPU使用率又被分为内核时间和用户时间。
  • 用户时间,执行用户态程序的时间被称为用户时间。
  • 内核时间,执行内核态代码的时间为内核时间,包含系统调用,内核线程和中断的时间。
  • 上下文切换,内核程序切换CPU让其在不同的地址空间上操作
  • 中断,由物理设备发送给内核的信号,通常是请求I/O服务

CPU高的常见原因

扫描行高

查看资源监控可以看出CPU使用率很高。

2.png

查看引擎监控操作行数

0.png

发现存在大量的全表扫描行,这个是导致CPU高的主要问题,对于一个查询来说,如果该查询返回10行数据,我们需要尽量保证SQL通过索引扫描10行数据返回,此时效率是最高的,而不是全表扫描100W行数据后过滤掉99%的数据,返回10行给客户端。评价一个查询是否扫描行很高就可以通过该查询的返回行和扫描行相比可以知道,如果扫描行远大于返回行说明该SQL可以通过创建合适索引可以极大程度的降低SQL的响应时间以及降低CPU资源的使用率。

通过das的性能洞察可以找出问题SQL

3.png

找到慢SQL后,可以参考RDS PG慢SQL问题,进行SQL的优化。

活跃会话高

查看资源监控

4.png

发现CPU使用率较高,此时系统态占用达到了23%,说明可能存在大量的系统调用或者中断导致系统态CPU使用率较高。

查看下引擎监控的操作行数

5.png

发现此时全表扫描行数并不高。

查看下引擎监控的连接情况

6.png

发现此时活跃会话数已达到279个,此实例规格为2C4G,因为CPU只有两个core,同时却有279个会话同时运行,此时CPU会频繁的进行上下文切换,导致CPU的系统态占用增加,降低了CPU实际去执行SQL的时间。此时说明数据库资源已远超目前能提供服务的负载。一般合理的活跃会话数量是当前实例规格CPU数量的2-3倍,例如实例规格为2C4G,性能最高的情况为活跃会话数不超过4-6个,此时CPU使用效率最高,绝大多数CPU资源都用于执行SQL,而不是进行上下文切换或者中断等。

查看DAS中的会话管理,查看当前活跃状态的SQL以及数量。

7.png

查看DAS中的性能洞察查看当前具体的SQL分布,以及SQL的等待事件

8.png

对于这类情况,需要考虑进行规格的升级,或者降低并发降低活跃会话的数量,保存活跃会话在一个合理的范围内。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
关系型数据库 MySQL Serverless
高顿教育:大数据抽数分析业务引入polardb mysql serverless
高顿教育通过使用polardb serverless形态进行数据汇总,然后统一进行数据同步到数仓,业务有明显高低峰期,灵活的弹性伸缩能力,大大降低了客户使用成本。
|
5月前
|
关系型数据库 BI 分布式数据库
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
无需创建和开通资源,在预置环境中免费体验PolarDB MySQL及其NL2BI解决方案
PolarDB NL2BI解决方案,让你不懂SQL也能进行数据查询分析并生成BI报表
|
7月前
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
258 0
|
3天前
|
SQL 关系型数据库 Serverless
阿里云关系型数据库RDS
阿里云关系型数据库RDS
16 2
|
3天前
|
存储 关系型数据库 MySQL
TiDB与MySQL、PostgreSQL等数据库的比较分析
【2月更文挑战第25天】本文将对TiDB、MySQL和PostgreSQL等数据库进行详细的比较分析,探讨它们各自的优势和劣势。TiDB作为一款分布式关系型数据库,在扩展性、并发性能等方面表现突出;MySQL以其易用性和成熟性受到广泛应用;PostgreSQL则在数据完整性、扩展性等方面具有优势。通过对比这些数据库的特点和适用场景,帮助企业更好地选择适合自己业务需求的数据库系统。
|
7月前
|
关系型数据库 定位技术 分布式数据库
沉浸式学习PostgreSQL|PolarDB 18: 通过GIS轨迹相似伴随|时态分析|轨迹驻点识别等技术对拐卖、诱骗场景进行侦查
本文主要教大家怎么用好数据库, 而不是怎么运维管理数据库、怎么开发数据库内核.
1187 1
|
3天前
|
关系型数据库 分布式数据库 PolarDB
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
89 3
|
3天前
|
关系型数据库 分布式数据库 PolarDB
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
76 1
|
3天前
|
关系型数据库 分布式数据库 PolarDB
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
电子书阅读分享《PolarDB开发者大会:PolarDB在线数据实时分析加速》
89 1
|
3天前
|
存储 关系型数据库 分布式数据库
阿里云PolarDB解决乐麦多源数据存储性能问题
乐麦通过使用PolarDB数据库,使整个系统之间的数据查询分析更加高效
392 3

相关产品

  • 云数据库 RDS MySQL 版
  • 云原生数据库 PolarDB